import sys
import os

# 将项目根目录添加到Python路径中，以便导入模块
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from image_processing_modules.mmocr_utils import MMOCRExtractor

def run_mmocr_example():
    """
    运行一个使用MMOCR提取中文文字的示例。
    """
    print("--- MMOCR 中文提取示例 ---")

    # --- 请修改为您自己的图片路径 ---
    # 建议使用包含清晰中文文字的图片以获得最佳效果
    sample_image_path = "D:/temp/pic/test/ocr_01.png"  # <--- 在这里替换您的图片路径

    if not os.path.exists(sample_image_path):
        print(f"\n警告: 示例图片路径 '{sample_image_path}' 不存在。")
        print("请修改 mmocr_test.py 文件中的 `sample_image_path` 为您本地的图片路径后再运行此脚本。")
        return

    try:
        # 初始化MMOCR提取器（第一次运行时会自动下载模型，可能需要一些时间）
        # 如果你有可用的GPU，可以将 device 设置为 'cuda:0'
        mmocr_extractor = MMOCRExtractor(device='cpu')

        # 从图片中提取文字
        ocr_result = mmocr_extractor.extract_text(sample_image_path)

        print("\n--- MMOCR 提取结果 ---")
        # MMOCR返回一个包含详细信息的字典，我们提取其中的文本部分
        predictions = ocr_result.get('predictions', [])
        if predictions and 'rec_texts' in predictions[0]:
            extracted_texts = predictions[0]['rec_texts']
            for text in extracted_texts:
                print(text)
        else:
            print("未能从图片中提取任何文字。请检查图片质量或尝试其他模型。")
        print("-----------------------")

    except Exception as e:
        print(f"\n在运行MMOCR示例时发生错误: {e}")
        print("请确保您的网络连接正常，以便下载模型。")

if __name__ == "__main__":
    run_mmocr_example()
